The present disclosure generally relates to a Low-Density Parity-Check (LDPC) encoder.
Data integrity is an essential feature for any data storage device. Use of strong error-correction codes (ECCs) is recommended for NAND flash memory devices as the storage density increases with the use of multi-level cell/triple level cell (MLC/TLC) NAND flash. LDPC codes are often used as the ECC scheme in storage devices.
During code design, the parity-check matrix for an LDPC decoder may be constructed with random computer search or algebraic constructions to give best decoding performance. In some cases, these construction methods may not lead to a parity-check matrix which has the structure preferred for an efficient encoder. Because the complexity of encoding using a parity-check matrix may be in the order of the quadratic of the number of rows in the parity-check matrix, an LDPC encoder using a parity-check matrix may result in relatively larger memory usage, computational complexity, and power consumption for a large parity-check matrix even though the LDPC encoder may properly encode data bits.